This invention relates in general to client-server systems and, more particularly, to a method and apparatus for client-server communication involving a dynamically generated, transient applet having selected characteristics enabled therein as a response to a request from a limited capability client coupled to the server through a communications link.
Traditionally, programs have been designed toward the goal of writing the program once and then using the program, with little-to-no modification, to access and utilize a large variety of different types of data. Such xe2x80x9cgeneric programmingxe2x80x9d concepts have lead to the development of many generic programming methods for accessing and utilizing data. One common generic design method is to provide a single interface to a user or programmer for data access and utilization while providing multiple specific xe2x80x9cbackendsxe2x80x9d for accessing and utilizing different types of data. One example of such a generic design method is the open database connectivity standard (ODBC). ODBC provides a single interface that can be used to access various databases by using the single interface in combination with multiple backends wherein each backend is tailored to a specific database. Many other standards similar to the ODBC standard, which provide similar generic-to-specific functionality, have been developed and are presently in use today. A disadvantage to the single interface with multiple backends is that numerous different types of systems, each with their own specific interface requirements, have been developed and have necessitated the creation of numerous back-ends. In short, underneath a single interface there is typically a backend specific implementation or implementations. Another disadvantage to such generic systems is that often all or many of the different backends are included with each piece of application software written to use the generic interface so that the application software can utilize a large variety of specific systems.
As computer technology has advanced, computers and electronic devices have become smaller and smaller. Along with the shrinking of computers has come the creation of handheld and credit-card-size computers. The personal digital assistants that have appeared are common examples of handheld and credit-card-size computers. The small size and easy portability of the handheld and credit-card-size computers has limited the amount of physical memory and secondary storage that may be included in these devices. xe2x80x9cPhysical memoryxe2x80x9d is used here to refer to memory, such as random access memory (RAM), that loses its contents in the absence of electrical or battery power. xe2x80x9cSecondary storage,xe2x80x9d as used here, refers to persistent storage such as hard drives, CD-ROMs, and floppy disks which retain their contents in the absence of electrical or battery power.
Traditional methods of computer-to-computer communication have involved wire-based networks. An example of such a wire-based network technology is the 10baseT Ethernet networks used in many corporations. Handheld and credit-card-size computers are typically not suited to traditional wire-based networking methods. Thus, wireless communications methods are often used with handheld and credit-card-size computers for networking with other computers. For example, many handheld and credit-card-size computers communicate with other computers or devices using infrared light or over the cellular phone network.
Infrared light and the cellular phone networks share the limitation of having a low speed relative to wire-based networks. Traditional network applications, having been developed on wire-connected computers, often do not take into account the limitations imposed by the low-speed connections used by handheld and credit-card-size computers. For example, the World Wide Web (the xe2x80x9cwebxe2x80x9d) uses the HyperText Transfer Protocol which may require a server system to resend an entire web page even if only a single data item on that web page has to be updated. For another example, many traditional web-enabled applications utilize plug-ins that must be loaded onto the client to allow the client to use the particular functionality of a server. The plug-ins typically remain on the client following the termination of an interactive session and, thus, consume the limited storage resources of handheld devices. Handheld and credit-card-size computers may have no secondary storage, thus requiring the plug-ins to be stored in the limited physical memory of the device which reduces the amount of memory available for use by other applications running on the handheld and credit-card-size computers.
From the foregoing, it may be appreciated that a need has arisen for a method and apparatus for responding to a client request so as to reduce bandwidth usage over a low-speed connection and reduce the consumption of storage space on the client.
According to one embodiment of the present invention, a data processing system is provided that comprises a client device coupled to a communications link and operable to communicate a request over the communications link. The system further comprises a server coupled to the communications link and operable to receive the request and to collect a plurality of data items from a plurality of distinct sources where the data items comprise information collected as a function of the request. The system also comprises an executable applet dynamically generated by the server in response to the request, a constituent system associated with the applet comprising a subset of the data items, each data item in the subset used as a pre-loaded value in the applet. The applet is operable to be transferred over the communications link to the client device and the client device is operable to execute the applet to access the subset of the data items.
According to another embodiment of the present invention, the pre-loaded values are non-updateable.
According to another embodiment of the present invention, the applet further comprises a plurality of updateable elements.
The present invention provides a number of technical advantages. One such technical advantage is the capability to respond to client requests for information from a server using a dynamically generated, selected characteristic enabled, transient applet. The applet that is sent to the client is substantially self-sufficient and depends on substantially no services being available on the client for the applet to use. For example, if a person is trying to buy a book from an online book seller, the online bookseller may provide the user with a customized capability for book browsing and the applet will comprise the requisite functionality for the custom book browser and the necessary data for the client to use with the book browser. Accordingly, the use of such an applet allows the human operator of a handheld device which has limited memory and limited or no secondary storage capabilities to initiate and complete a transaction with a server without having to load and store a variety of support programs which may be required by the server. Another advantage is that by discarding the applet after a transaction, each transaction between the client and the server may be made independently of previous transactions and with little or no post-transaction impact on the limited resources of the client.
A further advantage is that the total amount of data transferred between the client and the server over a communications link is decreased. By transmitting the appropriate data and associated data handling capabilities as a group, the client may be required to communicate over a low-speed communications link a greatly reduced number of times or, in some cases, only once. Yet another advantage is found in the avoidance of transmitting duplicate data by using updateable elements and a loader within the applet to load only new data desired by the client from the server, instead of completely retransmitting all the information in order to include small changes.